package br.curso.senac.facade.impl;

import java.util.List;

import br.curso.senac.dao.PizzaDAO;
import br.curso.senac.dao.impl.PizzaDAOImpl;
import br.curso.senac.facade.PizzaFacade;
import br.curso.senac.model.Pizza;

public class PizzaFacadeImpl implements PizzaFacade {

	private PizzaDAO pizzaDAO;
	
	public PizzaDAO getPizzaDAO() {
		return pizzaDAO;
	}

	public void setPizzaDAO(PizzaDAO pizzaDAO) {
		this.pizzaDAO = pizzaDAO;
	}		

	@Override
	public void incluirPizza(Pizza pizza) {

		try {					
			
			this.pizzaDAO = new PizzaDAOImpl();
			
			pizzaDAO.gravar(pizza);
	
			pizza = new Pizza();

		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao cadastrar pizza. Mensagem: "
							+ e.getMessage());

		}
		
	}

	@Override
	public void alterarPizza(Pizza pizza) {

		try {
			
			this.pizzaDAO = new PizzaDAOImpl();
			
			pizza = pizzaDAO.buscaPizzaPorCodigo(pizza.getId());

			pizzaDAO.gravar(pizza);

		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao alterar pizza. Mensagem: "
							+ e.getMessage());
		}
		
	}

	@Override
	public void excluirPizza(Pizza pizza) {

		try {

			this.pizzaDAO = new PizzaDAOImpl();
			
			pizzaDAO.excluir(pizza.getId());

		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao excluir pizza. Mensagem: "
							+ e.getMessage());
		}
		
	}

	@Override
	public List<Pizza> listarPizza() {
		
		List<Pizza> listaPizzas = null;
		
		try {

			this.pizzaDAO = new PizzaDAOImpl();
			
			listaPizzas = pizzaDAO.listar();

		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao listar pizzas. Mensagem: "
							+ e.getMessage());
		}
		
		return listaPizzas;

	}

	@Override
	public Pizza buscarPizzaPorCodigo(Integer codigo) {
				
		Pizza pizza = null;
		
		try {				
		
			this.pizzaDAO = new PizzaDAOImpl();

			pizza = pizzaDAO.buscaPizzaPorCodigo(codigo);


		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao buscar pizza. Mensagem: "
							+ e.getMessage());
		}
		return pizza;

	}

	@Override
	public Pizza buscarPizzaPorNome(String nome) {
		
		Pizza pizza = null;
		
		try {

			this.pizzaDAO = new PizzaDAOImpl();
			
			pizza = pizzaDAO.buscaPizzaPorNome(nome);						

		} catch (Exception e) {

			System.out
					.println("[Controle] Erro ao buscar pizza. Mensagem: "
							+ e.getMessage());
		}

		return pizza;
	}
	


}
